#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

int qqq(void* e1, void* e2) {
	return (*(int*)e1 - *(int*)e2);
}
void eee(char* e1, char* e2,int q) {
	int i = 0;
	
	for (i = 0; i < q; i++) {
		char a = *e1;
		*e1 = *e2;
		*e2 = a;
		e1++;
		e2++;

	}




}

void qose(void* arr, int sz, int q, int (*ret)(void* e1, void* e2)) {
	int i = 0;
	for (i = 0; i < sz-1; i++) {
		int j = 0;
		for (j = 0; j < sz - 1 - i; j++) {
			if (ret((char*)arr+j*q, (char*)arr+j * q +1 * q)>0) {
				eee((char*)arr+j * q, (char*)arr+j * q +1 * q, q);
			}
			else {
			
			}
		}

	}







}







int main() {
	int arr[] = { 0,8,9,6,5,7,2,3,4,1 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	for (int i = 0; i < sz; i++) {
		printf("%d ", arr[i]);
	}
	printf("\n");
	qose(arr, sz, sizeof(arr[0]), qqq);
	for (int i = 0; i < sz; i++) {
		printf("%d ", arr[i]);
	}
	printf("\n");




	return 0;
}